package com.ruoyi.car.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 车辆基础信息（买车页、详情页）对象 t_car_info
 * 
 * @author yby
 * @date 2025-09-01
 */
public class CarInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 车辆唯一ID */
    private Long id;

    /** 车辆编号（CAR20240901001） */
    @Excel(name = "车辆编号", readConverterExp = "C=AR20240901001")
    private String carCode;

    /** 卖家ID（t_user.id） */
    @Excel(name = "卖家ID", readConverterExp = "t=_user.id")
    private Long sellerId;

    /** 品牌ID（t_car_brand.id） */
    @Excel(name = "品牌ID", readConverterExp = "t=_car_brand.id")
    private Long brandId;

    /** 车系ID（t_car_series.id） */
    @Excel(name = "车系ID", readConverterExp = "t=_car_series.id")
    private Long seriesId;

    /** 车型名称（如“宝马325Li M运动套装”） */
    @Excel(name = "车型名称", readConverterExp = "如=“宝马325Li,M=运动套装”")
    private String modelName;

    /** 车辆类型（关联t_dict_data：01=轿车） */
    @Excel(name = "车辆类型", readConverterExp = "关=联t_dict_data：01=轿车")
    private String carType;

    /** 首次注册日期（2020-05-10） */
    @Excel(name = "首次注册日期", readConverterExp = "2=020-05-10")
    private Date registerTime;

    /** 行驶里程（万公里，如5.2） */
    @Excel(name = "行驶里程", readConverterExp = "万=公里，如5.2")
    private BigDecimal mileage;

    /** 排量（L，如2.0） */
    @Excel(name = "排量", readConverterExp = "L=，如2.0")
    private BigDecimal displacement;

    /** 燃油类型（关联t_dict_data：01=汽油） */
    @Excel(name = "燃油类型", readConverterExp = "关=联t_dict_data：01=汽油")
    private String fuelType;

    /** 变速箱类型（关联t_dict_data：01=自动） */
    @Excel(name = "变速箱类型", readConverterExp = "关=联t_dict_data：01=自动")
    private String gearboxType;

    /** 车身颜色（黑色/白色） */
    @Excel(name = "车身颜色", readConverterExp = "黑=色/白色")
    private String color;

    /** 车辆状况（1=优秀，2=良好，3=一般） */
    @Excel(name = "车辆状况", readConverterExp = "1==优秀，2=良好，3=一般")
    private Long carCondition;

    /** 售价（元） */
    @Excel(name = "售价", readConverterExp = "元=")
    private BigDecimal price;

    /** 车辆主图URL（买车页列表图） */
    @Excel(name = "车辆主图URL", readConverterExp = "买=车页列表图")
    private String mainPic;

    /** 车辆详情描述（卖家自定义） */
    @Excel(name = "车辆详情描述", readConverterExp = "卖=家自定义")
    private String detailDesc;

    /** 状态：0-待审核，1-已上架，2-已售出 */
    @Excel(name = "状态：0-待审核，1-已上架，2-已售出")
    private Long status;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setCarCode(String carCode) 
    {
        this.carCode = carCode;
    }

    public String getCarCode() 
    {
        return carCode;
    }

    public void setSellerId(Long sellerId) 
    {
        this.sellerId = sellerId;
    }

    public Long getSellerId() 
    {
        return sellerId;
    }

    public void setBrandId(Long brandId) 
    {
        this.brandId = brandId;
    }

    public Long getBrandId() 
    {
        return brandId;
    }

    public void setSeriesId(Long seriesId) 
    {
        this.seriesId = seriesId;
    }

    public Long getSeriesId() 
    {
        return seriesId;
    }

    public void setModelName(String modelName) 
    {
        this.modelName = modelName;
    }

    public String getModelName() 
    {
        return modelName;
    }

    public void setCarType(String carType) 
    {
        this.carType = carType;
    }

    public String getCarType() 
    {
        return carType;
    }

    public void setRegisterTime(Date registerTime) 
    {
        this.registerTime = registerTime;
    }

    public Date getRegisterTime() 
    {
        return registerTime;
    }

    public void setMileage(BigDecimal mileage) 
    {
        this.mileage = mileage;
    }

    public BigDecimal getMileage() 
    {
        return mileage;
    }

    public void setDisplacement(BigDecimal displacement) 
    {
        this.displacement = displacement;
    }

    public BigDecimal getDisplacement() 
    {
        return displacement;
    }

    public void setFuelType(String fuelType) 
    {
        this.fuelType = fuelType;
    }

    public String getFuelType() 
    {
        return fuelType;
    }

    public void setGearboxType(String gearboxType) 
    {
        this.gearboxType = gearboxType;
    }

    public String getGearboxType() 
    {
        return gearboxType;
    }

    public void setColor(String color) 
    {
        this.color = color;
    }

    public String getColor() 
    {
        return color;
    }

    public void setCarCondition(Long carCondition) 
    {
        this.carCondition = carCondition;
    }

    public Long getCarCondition() 
    {
        return carCondition;
    }

    public void setPrice(BigDecimal price) 
    {
        this.price = price;
    }

    public BigDecimal getPrice() 
    {
        return price;
    }

    public void setMainPic(String mainPic) 
    {
        this.mainPic = mainPic;
    }

    public String getMainPic() 
    {
        return mainPic;
    }

    public void setDetailDesc(String detailDesc) 
    {
        this.detailDesc = detailDesc;
    }

    public String getDetailDesc() 
    {
        return detailDesc;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("carCode", getCarCode())
            .append("sellerId", getSellerId())
            .append("brandId", getBrandId())
            .append("seriesId", getSeriesId())
            .append("modelName", getModelName())
            .append("carType", getCarType())
            .append("registerTime", getRegisterTime())
            .append("mileage", getMileage())
            .append("displacement", getDisplacement())
            .append("fuelType", getFuelType())
            .append("gearboxType", getGearboxType())
            .append("color", getColor())
            .append("carCondition", getCarCondition())
            .append("price", getPrice())
            .append("mainPic", getMainPic())
            .append("detailDesc", getDetailDesc())
            .append("status", getStatus())
            .append("createTime", getCreateTime())
            .toString();
    }
}
